ARM and Thumb instructions can be grouped by functional area. All ARM instructions are 32 bits long. Instructions are stored word-aligned, so the least ...
The ARM and Thumb modes are word-aligned and halfword-aligned. I understand this means that if it's in ARM mode, the start of addresses must be divisible by 32.
If you are on ARM, please check whether you are emulating a THUMB instruction. If so, please use UC_MODE_THUMB and make sure the starting address is odd.